<html>
<head><meta charset="utf-8"><title>WF and region binders · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html">WF and region binders</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="200288026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200288026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200288026">(Jun 09 2020 at 20:47)</a>:</h4>
<p>So if you have <code>Foo&lt;'a, 'b: a&gt;</code> and <code>for&lt;'c, 'd&gt; fn(Foo&lt;'c, 'd&gt;)</code>, there is sort of something missing -- how do we know that <code>'c: 'd</code> after all? The same applies in a few other cases.</p>



<a name="200288044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200288044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200288044">(Jun 09 2020 at 20:47)</a>:</h4>
<p>What I had hoped to do was to use an implied-bounds like approach</p>



<a name="200288085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200288085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200288085">(Jun 09 2020 at 20:47)</a>:</h4>
<p>and make <code>for&lt;'c, 'd&gt; fn(Foo&lt;'c, 'd&gt;)</code> short for <code>for&lt;'c, 'd&gt; where WF(Foo&lt;'c, 'd&gt;) fn(Foo&lt;'c, 'd&gt;)</code></p>



<a name="200288233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200288233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200288233">(Jun 09 2020 at 20:48)</a>:</h4>
<p>I see. Would that mean that the <code>GeneratorWitness</code> type itself would store the relationships between regions?</p>



<a name="200288259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200288259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200288259">(Jun 09 2020 at 20:48)</a>:</h4>
<p>and <code>Wf(GeneratorWitness)</code> would require that those region requirements hold</p>



<a name="200473924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200473924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200473924">(Jun 10 2020 at 20:45)</a>:</h4>
<p>Ideally no, the generator witness would probably follow a similar approach</p>



<a name="200473932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200473932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200473932">(Jun 10 2020 at 20:45)</a>:</h4>
<p>i.e., it would require that its component field types are well-formed</p>



<a name="200473943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200473943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200473943">(Jun 10 2020 at 20:45)</a>:</h4>
<p>we won't know the relationships between regions anyway at the time the witness is formed</p>



<a name="200473974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200473974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200473974">(Jun 10 2020 at 20:45)</a>:</h4>
<p>I'm not sure I guess if that will suffice</p>



<a name="200936629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200936629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200936629">(Jun 15 2020 at 19:50)</a>:</h4>
<p>I don't think that's sufficient when user-defined auto trait impls come into play</p>



<a name="200936942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200936942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200936942">(Jun 15 2020 at 19:53)</a>:</h4>
<p>Consider the following code:</p>
<div class="codehilite"><pre><span></span><code><span class="k">struct</span> <span class="nc">MyStruct</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="p">(</span><span class="o">&amp;</span><span class="na">&#39;a</span><span class="w"> </span><span class="p">());</span><span class="w"></span>
<span class="k">unsafe</span><span class="w"> </span><span class="k">impl</span><span class="w"> </span><span class="nb">Send</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">MyStruct</span><span class="o">&lt;</span><span class="nb">&#39;static</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">assert_send</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nb">Send</span><span class="o">&gt;</span><span class="p">(</span><span class="n">_</span>: <span class="nc">T</span><span class="p">)</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">assert_send</span><span class="p">(</span><span class="o">||</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">foo</span>: <span class="nc">MyStruct</span><span class="o">&lt;</span><span class="nb">&#39;static</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">MyStruct</span><span class="p">(</span><span class="o">&amp;</span><span class="p">());</span><span class="w"></span>
<span class="w">        </span><span class="kr">yield</span><span class="p">;</span><span class="w"></span>
<span class="w">        </span><span class="n">foo</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="p">});</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="200937077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200937077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200937077">(Jun 15 2020 at 19:54)</a>:</h4>
<p>Currently, this does not compile, because we 'forget' that we are storing a <code>MyStruct&lt;'static&gt;</code></p>



<a name="200937201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200937201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200937201">(Jun 15 2020 at 19:54)</a>:</h4>
<p>it's not sufficient to know that the component types are well formed, because we may need to prove an impl that imposes additional region constraints</p>



<a name="200937873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200937873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200937873">(Jun 15 2020 at 19:59)</a>:</h4>
<p>I think that's considered "working as intended"</p>



<a name="200937981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200937981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200937981">(Jun 15 2020 at 20:00)</a>:</h4>
<p>Are you saying that we never want that kind of code to compile?</p>



<a name="200937997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200937997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200937997">(Jun 15 2020 at 20:00)</a>:</h4>
<p>that seems extremely counter-intuitive</p>



<a name="200938013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200938013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200938013">(Jun 15 2020 at 20:00)</a>:</h4>
<p>Yes, that's what I'm saying.</p>



<a name="200938567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200938567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200938567">(Jun 15 2020 at 20:05)</a>:</h4>
<p>I think that's going to be extremely confusing to users - when writing an <code>async fn</code>, all of the lifetimes will <em>look</em> correct, except your code may not compile</p>



<a name="200938715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200938715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200938715">(Jun 15 2020 at 20:06)</a>:</h4>
<p>also, users have already run into this: <a href="https://github.com/rust-lang/rust/issues/64552">https://github.com/rust-lang/rust/issues/64552</a> and <a href="https://github.com/rust-lang/rust/issues/68950">https://github.com/rust-lang/rust/issues/68950</a></p>



<a name="200938766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200938766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200938766">(Jun 15 2020 at 20:07)</a>:</h4>
<p>some of the minimizations in those threads would be fixed by using WF relationships, but not all of them</p>



<a name="200938882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200938882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200938882">(Jun 15 2020 at 20:08)</a>:</h4>
<p>In particular, the <code>Box&lt;dyn FnOnce() + 'static&gt;</code> in <a href="https://github.com/rust-lang/rust/issues/68950">https://github.com/rust-lang/rust/issues/68950</a> will not be solved by WF since <code>Box&lt;dyn Trait + 'static&gt;</code> and <code>Box&lt;dyn Trait + '_&gt;</code> are both well-formed</p>



<a name="200939200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200939200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200939200">(Jun 15 2020 at 20:11)</a>:</h4>
<p>that example is particularly bad because just changing <code>fn</code> to <code>async fn</code> is enough to break the code</p>



<a name="200939207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200939207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200939207">(Jun 15 2020 at 20:11)</a>:</h4>
<p>That's a different issue though, the issue there is the lifetime in the generator captures is not sufficiently constrained, not the type in the generator witness.</p>



<a name="200939343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200939343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200939343">(Jun 15 2020 at 20:12)</a>:</h4>
<p>oh, I see. we're only checking the 'upvar' regions for the 'impl trait lifetime capture' check?</p>



<a name="200939347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200939347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200939347">(Jun 15 2020 at 20:12)</a>:</h4>
<p>that makes sense</p>



<a name="200939406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200939406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200939406">(Jun 15 2020 at 20:13)</a>:</h4>
<p>Yes, bound regions are always for that check.</p>



<a name="200939448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200939448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200939448">(Jun 15 2020 at 20:13)</a>:</h4>
<p>can you elaborate on why we don't want the original example to compile?</p>



<a name="200942258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200942258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200942258">(Jun 15 2020 at 20:36)</a>:</h4>
<p>First, because who actually writes such an impl. Also it's hard to do it in a way that's stable and will work once typeck doesn't do region inference.</p>



<a name="200942967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200942967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200942967">(Jun 15 2020 at 20:42)</a>:</h4>
<p>You don't have to write that specific impl - you just need to hit some impl that imposes any additional lifetime requirements</p>



<a name="200943035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200943035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200943035">(Jun 15 2020 at 20:42)</a>:</h4>
<p>e.g. you could have <code>unsafe impl&lt;'a&gt; impl Send for MyStruct&lt;'a&gt; where MyStruct&lt;'a&gt;: OtherTrait</code></p>



<a name="200943068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200943068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200943068">(Jun 15 2020 at 20:43)</a>:</h4>
<p>and the impl of <code>OtherTrait</code> for <code>MyStruct</code> could impose <code>'a: 'static</code></p>



<a name="200943138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200943138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200943138">(Jun 15 2020 at 20:43)</a>:</h4>
<p>if handling WF correctly causes most of the errors to disappear in practice, then I understand that this might not be a priority</p>



<a name="200943350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/200943350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#200943350">(Jun 15 2020 at 20:45)</a>:</h4>
<p>but I think it would be good if this kind of code worked eventually, as I think the cases where it <em>does</em> matter will otherwise be extremely confusing and un-ergonomic</p>



<a name="201053103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/WF%20and%20region%20binders/near/201053103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/WF.20and.20region.20binders.html#201053103">(Jun 16 2020 at 18:07)</a>:</h4>
<p>Yeah, this may be true. It's kind of a larger problem -- I'd like to at least get to the point where we can handle the implied bounds examples I gave, which would mean we have more of the required <em>infrastructure</em> to do better.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>